Revision 2.2 of the specification for High-bandwidth Digital Content Protection (HDCP) on High-Definition Multimedia Interface (HDMI) was released on February 2013. When setting up an HDCP HDMI transfer, a session key exchange (SKE) is performed.
An HDCP system is composed of a source device, one or more sink devices and/or one or more repeater devices. A source device is an HDCP transmitter that encrypts the video/audio content according to the HDCP HDMI Revision 2.2 specification. A sink device is an HDCP receiver that decrypts the video/audio content according to the specification. A repeater device is an HDCP repeater that can decrypt and re-encrypt the video/audio content according the specification. In this document, we will only consider the HDCP transmitter and HDCP receiver but the same rationale can be applied to HDCP repeaters.
At the end of the pre-authorization stage, the HDCP transmitter will generate session information and pass this to the HDCP receiver. This information, along with the initial values outlined in the HDCP HDMI Revision 2.2 specification, are programmed into the content encryption engine prior to the transmission and receiving of the content data. This moves the HDCP system to the post-authorization stage which must maintain cipher synchronization in order to avoid link integrity problems. Cipher synchronization is achieved when both devices maintain the same frame counter value. The counter value starts at 0 and is incremented for every encrypted (protected) frame. This value is used for AES in counter mode. The HDCP receiver maintains this count by counting each encrypted frame.
The HDCP HDMI Revision 2.2 specification states that the HDCP transmitter must wait 200 ms after session key exchange (SKE) before transmitting the encrypted content. This minimizes issues related to the cipher synchronization on the HDCP receiver. In some cases, the HDCP transmitter may not be compliant to the HDCP HDMI Revision 2.2. specification and begin transmission of protected content immediately after SKE and/or less than the stated 200 ms. This may result with the HDCP receiver not able to properly synchronise with the HDCP transmitter therefore causing link integrity problems.
Referring to FIG. 1, a transmitter (Tx) sends three frames 101a-101c with no encryption (ENC_DIS). Once the receiver (Rx) 100 programs the encryption keys and reaches the AUTH (authorization) mode 103, the receiver 100 begins to monitor the frame content for ENC_EN control signal 102c-102e. When the control signal is received after the receiver 100 transitions to the AUTH mode, the receiver 100 begins to perform a frame count 104. Maintaining a proper frame count is essential to ensure proper cipher synchronization.
If the transmitter does not wait 200 ms after sending the encrypted session key but rather begins to send encrypted content immediately before, during or after the SKE (session key exchange), the receiver 100 may not be ready or prepared for listening to the ENC_EN=1 control signal, and the receiver 100 may not synchronize the cipher and therefore cannot decrypt the content data. FIG. 1 illustrates this scenario, when the transmitter (Tx) starts sending encrypted content starting at Frame #3 102a, but the switch to authorization mode 103 does not occur until after Frame #4. Accordingly, the receiver (Rx) 100 does not initialize the frame counter until after Frame #5 is received.
There is a need to guarantee correct cipher synchronization even if the transmitter sends encrypted content prior to the 200 ms delay required by the HDCP HDMI 2.2 specification.